VMWare虚拟机处理器数量与每个处理器内核数量概念,以及分配CPU资源详解

您所在的位置:网站首页 sr2zu cpu参数 VMWare虚拟机处理器数量与每个处理器内核数量概念,以及分配CPU资源详解

VMWare虚拟机处理器数量与每个处理器内核数量概念,以及分配CPU资源详解

2023-08-28 12:27| 来源: 网络整理| 查看: 265

VMWare虚拟机处理器数量与每个处理器内核数量概念,以及分配CPU资源详解 概念CPU的物理核心和超线程CPU的睿频机制总结

概念

在这里插入图片描述

处理器数量:虚拟机上的CPU个数(上图中的插槽数,是机器主板上CPU的个数,并非CPU的物理核心数) 每个处理器的内核数量:每个虚拟的CPU有几个内核(可以看到虚拟机内部并不区分物理核心数和线程数) 处理器内核总数:处理器数量 * 每个处理器的内核数量(即物理机分配给虚拟机的CPU线程数,只要该参数一样,不管上面两个参数怎么调整整机性能都是一致的) 以上3个参数的上限由【当前要安装的目标操作系统所支持的CPU最大个数、物理机CPU线程总数、VMWare版本所支持的虚拟机最大核心数】三者中的短板决定

CPU的物理核心和超线程

问题:现有一台CPU为12核24线程的物理机(该CPU正常发挥水平),要使得目标虚拟机至多拥有其50%的CPU性能,该怎么分配? 错误回答:分配CPU资源时,使“处理器内核总数”等于12就行。 如果将问题中的CPU换为24核24线程,那这个回答就是正确的。(所以你的CPU如果没有超线程,那么文章到这里就结束了~笑) 超线程的性能并不等于两个CPU物理核心的性能,多出的线程能提供多少性能取决于CPU的架构。(多出的线程性能可用CPU性能测试工具测出) 操作系统在调用有超线程技术的CPU处理多核应用时,优先调用物理核心(物理线程),当所有的物理核心占满后再调用超线程技术提供的线程。 比如问题中的CPU有24个线程,其中物理线程为A1–A12,虚拟线程为B1–B12,A1与B1同属于一个核心,当A1占满后,操作系统会优先调用A2而不会调用B1。当A1–A12都占满后,才会调用B1–B12(实际调用情况可能不是如此,但是展现出来的算力可以依此表现),所以分配12个线程很可能会出现远超50%性能的情况。 在这里插入图片描述 上图就是12核24线程的5900X跑CPU-Z的分数,可以看到其多线程倍率(总线程得分/单核单线程得分)并不是24或者接近24的值,而是远低于24的14.xx。也就是说这颗处理器多出来的线程只增加了(14.73-12)/12=22.75%的性能(但这并不是准确的,请看下面)。

CPU的睿频机制

在这里插入图片描述 目前4C8T起步的主流CPU都有睿频机制,在CPU只占用少数核心的情况下把一个或是几个核心进行频率加速。 在这里插入图片描述 上图出现的CPU频率差异会导致全核状态下的CPU多线程倍率比实际偏低,所以要想得出准确的倍率需要先将CPU频率锁定。 两种锁定CPU频率办法: 1、通过Windows控制面板中的电源选项使更改“最小/最大处理状态”,使其小于100% 2、通过主板BIOS进行锁频 第二种方法由于不同品牌主板BIOS调节步骤不一致,所以这里介绍第一种方法 在这里插入图片描述 在这里插入图片描述 设置完后,运行CPU-Z,先勾选与自己CPU核心数一样的线程数进行测试,验证线程倍率是否≈核心数量,如果低于,那需要将“最小/最大处理状态”再次降低。 在这里插入图片描述 如上图,11.68≈12,所以接下来勾选全部线程进行跑分 在这里插入图片描述 最后得到多线程倍率为15.69,若要使虚拟机获得50%性能,则需要分配15.69*0.5≈8个线程。 在这里插入图片描述 验证:上图右边为分配了8个线程的虚拟机,4993.7/9664.1≈51.7% 测试完成后别忘了把电源计划还原,否则会限制CPU正常发挥性能。

总结

对于没有超线程的CPU:分配给虚拟机的线程数=目标性能比率 * 物理机线程总数 对于有超线程的CPU,若目标性能比率 物理核心数 / 多线程倍率,则分配给虚拟机的线程数 = 物理核心数 + (目标性能比率 - 物理核心数 / 多线程倍率) / (1 - 物理核心数 / 多线程倍率) * 虚拟线程数 PS:这里的目标性能比率为【虚拟机至多拥有的CPU性能/物理CPU机性能】;虚拟线程数=CPU总线程数 - 物理核心数;有睿频技术的处理器需要锁频来获得准确的多线程倍率



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3